<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }

        ul {
            list-style: none;
        }

        .w {
            width: 900px;
            margin: 0 auto;
        }

        .controls textarea {
            width: 878px;
            height: 100px;
            resize: none;
            border-radius: 10px;
            outline: none;
            padding-left: 20px;
            padding-top: 10px;
            font-size: 18px;
        }

        .controls {
            overflow: hidden;
        }

        .controls div {
            float: right;
        }

        .controls div span {
            color: #666;
        }

        .controls div .useCount {
            color: red;
        }

        .controls div button {
            width: 100px;
            outline: none;
            border: none;
            background: rgb(0, 132, 255);
            height: 30px;
            cursor: pointer;
            color: #fff;
            font: bold 14px '宋体';
            transition: all .5s;
        }

        .controls div button:disabled {
            background: rgba(0, 255, 255, .5);
        }

        .contentList {
            margin-top: 50px;
        }

        .contentList li {
            padding: 20px 0;
            border-bottom: 1px dashed #ccc;
            position: relative;
        }

        .contentList li .info {
            position: relative;
        }

        .contentList li .info span {
            position: absolute;
            top: 15px;
            left: 100px;
            font: bold 16px '宋体';
        }

        .contentList li .info p {
            position: absolute;
            top: 40px;
            left: 100px;
            color: #aaa;
            font-size: 12px;

        }

        .contentList li .the_del {
            position: absolute;
            right: 0;
            top: 0;
            font-size: 28px;
            cursor: pointer;
        }

        .userpic {
            width: 70px;
            height: 70px;
            border-radius: 35px;
        }
    </style>
</head>

<body>
    <div class="w">
        <div class="controls">
            <textarea cols="30" rows="10" placeholder="说点什么吧" maxlength="200"></textarea>
            <div>
                <span class="useCount" id="useCount">0</span>
                <span>/</span>
                <span>200</span>
                <button id="send">发布</button>
            </div>
        </div>
        <!-- 微博内容列表 -->
        <div class="contentList">
            <ul id="list"></ul>
        </div>
    </div>
    <!-- 添加了hidden属性元素会直接隐藏 -->
    <li hidden>
        <div class="info">
            <img class="userpic" src="/imgs/timthumb(1).jpg" alt="">
            <span class="username">死数据：百里守约</span>
            <div class="send-time">死数据：发布于2022年9月12日</div>
        </div>
        <div class="content">死数据：111</div>
        <div class="the_del">删除</div>
    </li>
    <script>
        function getLocaldata() {
            let data = localStorage.getItem('newdata')
            if (data) {
                return JSON.parse(localStorage.getItem('newdata'))
            } else {
                let dataArr = [
                    { uname: '孙悟空', imgSrc: '/imgs/timthumb(3).jpg' },
                    { uname: '李白', imgSrc: '/imgs/timthumb(1).jpg' },
                    { uname: '猪八戒', imgSrc: '/imgs/timthumb(2).jpg' },
                    { uname: '唐僧', imgSrc: '/imgs/timthumb(4).jpg' },
                ]
                localStorage.setItem('newdata', JSON.stringify(dataArr))
            }
        }

        // 需求1.检测用户输入字数
        // 1.注册input事件
        // 2.将文本的内容的长度赋值给对应的数值
        // 3.表单的maxlength属性可以直接限制在200个数之间
        let textarea = document.querySelector('textarea')
        let send = document.querySelector('#send')
        let useCount = document.querySelector('.useCount')
        let ul = document.querySelector('#list')
        textarea.addEventListener('input', function () {
            // console.log(textarea.value.length);
            useCount.innerHTML = this.value.length
        })


        // 需求2.检测用户输入字数
        // 点击button之后判断
        // 判断如果内容为空，则提示不能输入为空，并且直接return 不能为空
        // 防止输入无意义空格，使用字符串.trim()去掉首尾空格
        // 并将表单的value值设置为空字符串
        // 同时下面红色设置为0
        send.addEventListener('click', function () {
            let dataArr = getLocaldata()

            if (textarea.value.trim() === '') {
                textarea.value = ''
                useCount.innerHTML = 0
                return alert('内容不能为空')
            }
            //随机数
            function getRandomIntInclusive(min, max) {
                min = Math.ceil(min);
                max = Math.floor(max);
                return Math.floor(Math.random() * (max - min + 1)) + min; //含最大值，含最小值
            }

            let randIndex = getRandomIntInclusive(0, dataArr.length - 1)

            // 需求3. 新增留言
            // 创建一个小li，然后里面通过innerHtml追加数据
            // 随机获取数据数组里面的内容，替换newNode的图片和名字以及留言内容
            // 追加给ul

            let li = document.createElement('li')
            li.innerHTML = `
            <div class="info">
                <img class="userpic" src=${dataArr[randIndex].imgSrc} alt="">
                <span class="username">${dataArr[randIndex].uname}</span>
                <div class="send-time">${new Date().toLocaleString()}</div>
            </div>
            <div class="content">${textarea.value}</div>
            <div class="the_del" >删除</div>
        `
            ul.insertBefore(li, ul.children[0])
            localStorage.setItem('newdata', JSON.stringify(dataArr))
            
            // 需求4.删除留言
            // 在事件处理函数里面获取点击按钮,注册点击事件
            // (易错点:逆序在时间里面获取,外面获取不到)
            // 删除对应的元素(通过this获取对应的那条需要删除的元素)
            // 
            let del = document.querySelector('.the_del')
            del.addEventListener('click', function () {
                // console.log(111);
                // console.log(this.parentNode);
                // ul.removeChild(li)
                this.parentNode.remove()
            })
            // 需求5:重置
            // 将表单域内容重置为空
            // 将userCount里面的内容重置为0
            textarea.value = ''
            useCount.innerHTML = 0

        })
        textarea.addEventListener('keyup', function (e) {
            // console.log(111);
            // console.log(e.key);
            if (e.key === 'Enter') {
                send.click()
            }
        })
    </script>
</body>

</html>